4
תגובות
היי חברה יש לי בעיה עם הטופס גם שאין שם הוא עדיין מבצע שליחה
אשמח לדעת איפה אני נופל בבדיקה
זה הקוד
אשמח לדעת איפה אני נופל בבדיקה
זה הקוד
$successfully_msg = "ההודע נשלחה";
$email_subject = "אתר vsite";
define('EMAILTO', '[email protected]');
if (isset($_POST['name'], $_POST['phone'], $_POST['email'])) {
$name = trim(strip_tags($_POST['name']));
$phone = trim(strip_tags($_POST['phone']));
$email = trim(strip_tags($_POST['email']));
if(strlen($name) < 2) {
echo "נא להזין שם מלא";
}
if (!preg_match('/^0[0-9]{6,16}/', $phone)) {
echo "נא להזין טלפון";
}
$email_exp = '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i';
if (!preg_match($email_exp, $email)) {
echo 'נא להזין דוא"ל';
}
else{
function clean_string($string) {
$bad = array("content-type", "bcc:", "to:", "cc:", "href");
return str_replace($bad, "", $string);
}
$email_message .= "First Name: " . clean_string($name) . "\n";
$email_message .= "Email: " . clean_string($email) . "\n";
$email_message .= "Telephone: " . clean_string($phone) . "\n";
$headers = 'From: ' . $name . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
@mail(EMAILTO, $email_subject, $email_message, $headers);
echo $successfully_msg;
}
}
$email_subject = "אתר vsite";
define('EMAILTO', '[email protected]');
if (isset($_POST['name'], $_POST['phone'], $_POST['email'])) {
$name = trim(strip_tags($_POST['name']));
$phone = trim(strip_tags($_POST['phone']));
$email = trim(strip_tags($_POST['email']));
if(strlen($name) < 2) {
echo "נא להזין שם מלא";
}
if (!preg_match('/^0[0-9]{6,16}/', $phone)) {
echo "נא להזין טלפון";
}
$email_exp = '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i';
if (!preg_match($email_exp, $email)) {
echo 'נא להזין דוא"ל';
}
else{
function clean_string($string) {
$bad = array("content-type", "bcc:", "to:", "cc:", "href");
return str_replace($bad, "", $string);
}
$email_message .= "First Name: " . clean_string($name) . "\n";
$email_message .= "Email: " . clean_string($email) . "\n";
$email_message .= "Telephone: " . clean_string($phone) . "\n";
$headers = 'From: ' . $name . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
@mail(EMAILTO, $email_subject, $email_message, $headers);
echo $successfully_msg;
}
}
4 תשובות
שנית, הוא שולח את האימייל בגלל שלא אמרת "לא לשלוח".
הקוד מבקש להדפיס הודעה שאין שם, אבל אחרי שההודעה הודפסה - הקוד ממשיך להתבצע כפי שהוא.
זה קורה בגלל שה else שייך רק ל IF האחרון.
במקום זה תוכל להשתמש בקפודות ifelse עבור שאר התנאים.
היי אלכס תודה .
מה זאת אומרת הוא שולח את האימייל בגלל שלא אמרת "לא לשלוח".?
הקוד מבקש להדפיס הודעה שאין שם?
שאלה עם הבדיקות לא עברה אני צריך לעצור את הסקיפט בdie()?
אם הבדיקה לא עברה, אתה פשוט צריך לא להגיע לחלק של השליחה.
ככה הקוד שלך נראה עכשיו:
if(blabla)
{
..
}
send_email()
{
..
}
send_email()
ואין בו שום קשר בין התנאי לבין השליחה. השליחה מתבצעת בכל מקרה, לא משנה אם התנאי אמת או שקר.
ככה הקוד שלך צריך להיראות במקום זה:
if(blabla)
{
..
}
else if( another blabla)
{
..
}
else
{
send_email()
}
{
..
}
else if( another blabla)
{
..
}
else
{
send_email()
}
במקרה הזה האימייל יישלח רק אם שני התאנים הקודמים לא התבצעו